﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
using Inventario_HardSoft.ADO;
using Inventario_HardSoft.Controlador;

namespace Inventario_HardSoft.Presentacion
{
    public partial class Registro_de_Equipo : Form
    {
        Ctrl_Reg_Equipo controlador;
        public Registro_de_Equipo()
        {
            InitializeComponent();
            controlador = new Ctrl_Reg_Equipo();
        }

        private void check_NuevoEquipo_CheckedChanged(object sender, EventArgs e)
        {
            if (check_NuevoEquipo.Checked)
            {
                txt_Equipo.Enabled = true;               
                cmb_tipoEquipo.Enabled = false;
            }
            else
            {
                txt_Equipo.Text = string.Empty;
                txt_Equipo.Enabled = false;
                cmb_tipoEquipo.Enabled = true;
            }
        }

        private void btn_Agregar_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(txt_Marca.Text) &&
                !string.IsNullOrWhiteSpace(txt_Modelo.Text) &&
                !string.IsNullOrWhiteSpace(txt_Serie.Text))
            {
                if (cmb_tipoEquipo.Enabled && !check_NuevoEquipo.Checked)
                {
                    //registrar de acuerdo al combo
                    if (cmb_tipoEquipo.SelectedIndex >= 0)
                    {
                        Equipo eq = new Equipo()
                        {
                            tipoequipo = cmb_tipoEquipo.SelectedItem.ToString(),
                            marca = txt_Marca.Text,
                            modelo = txt_Modelo.Text,
                            serie = txt_Serie.Text,
                            nombreequipo = txt_NombEquipo.Text,
                            asignado = 0,
                            eliminado = 0                            
                        };
                        DialogResult dr = controlador.regEquipo(eq);
                        switch (dr)
                        {
                            case DialogResult.OK:
                                MessageBox.Show("Equipo registrado", "Registrar equipo", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                                break;
                            case DialogResult.Cancel:
                                MessageBox.Show("Error al registrar equipo", "Registrar equipo - Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                                this.Close();
                                break;
                            case DialogResult.No:
                                MessageBox.Show("La serie del equipo ya existe - pertenece a otro equipo", "Registrar equipo - Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                                this.Close();
                                break;
                        }
                        limpiar();
                    }
                    else
                    {
                        MessageBox.Show("No ha indicado el tipo de equipo", "Registrar equipo - Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                    }
                }
                else if (!cmb_tipoEquipo.Enabled && check_NuevoEquipo.Checked)
                {
                    //registrar de acuerdo al txt_nuevoequipo
                    if (!string.IsNullOrWhiteSpace(txt_Equipo.Text))
                    {
                        Equipo eq = new Equipo()
                        {
                            tipoequipo = txt_Equipo.Text,
                            marca = txt_Marca.Text,
                            modelo = txt_Modelo.Text,
                            serie = txt_Serie.Text,
                            asignado = 0,
                            eliminado = 0
                        };
                        DialogResult dr = controlador.regEquipo(eq);
                        switch (dr)
                        {
                            case DialogResult.OK:
                                MessageBox.Show("Equipo registrado", "Registrar equipo", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                                break;
                            case DialogResult.Cancel:
                                MessageBox.Show("Error al registrar equipo", "Registrar equipo - Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                                this.Close();
                                break;
                        }
                        limpiar();
                    }
                    else
                    {
                        MessageBox.Show("No ha indicado el tipo de equipo", "Registrar equipo - Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                    }
                }
                else if (!cmb_tipoEquipo.Enabled && !check_NuevoEquipo.Checked)
                {
                    MessageBox.Show("No ha indicado el tipo de equipo", "Registrar equipo - Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                }
            }
            else
            {
                MessageBox.Show("Complete todos los campos","Registrar equipo - Error",MessageBoxButtons.OK,MessageBoxIcon.Error,MessageBoxDefaultButton.Button1);
            }
        }
        
        private void limpiar() 
        {
            cmb_tipoEquipo.SelectedIndex = -1;
            check_NuevoEquipo.Checked = false;
            txt_Equipo.Text = "";
            txt_Marca.Text = "";
            txt_Modelo.Text = "";
            txt_Serie.Text = "";
            txt_NombEquipo.Text = "";
        }

        private void cmb_tipoEquipo_DropDownClosed(object sender, EventArgs e)
        {
            check_NuevoEquipo.Checked = false;
        }

        private void btn_Cerrar_Click(object sender, EventArgs e)
        {
            //try
            //{
            //    this.Cursor = Cursors.WaitCursor;
            //    PrintForm pf = new PrintForm(this);
            //    pf.Cerrar();
            //}
            //catch (Exception ex)
            //{
            //    MessageBox.Show(this, ex.Message);
            //}
            //finally
            //{
            //    this.Cursor = Cursors.Default;
            //}
            this.Close();
        }

        private void cmb_tipoEquipo_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void checkNombEquipo_CheckedChanged(object sender, EventArgs e)
        {
            if (checkNombEquipo.Checked)
            {
                txt_NombEquipo.Enabled = true;
            }
           else 
            {
                txt_NombEquipo.Enabled = false;
            }
        }

        private void Registro_de_Equipo_Load(object sender, EventArgs e)
        {

        } 
    }


}
